1. Field of the Invention
This invention relates to improvements in programmable mixed-mode integrated circuit devices and architectures, and, more particularly, to improvements in programmable integrated circuit devices containing one or more analog circuits together with one or more digital circuits, in general, and selectable or programmable analog and digital circuits, in particular, and to methods for using and fabricating same.
2. Relevant Background Information
Fabrication of custom integrated circuits that involve one or more analog circuits is usually a costly and time consuming process. During the process, typically, a user or customer specifies the various analog functions and parameters needed to an integrated circuit manufacturer. Such parameters may include, for instance, input and output voltages, circuit operating voltages, various timing requirements, various voltage reference and comparing requirements, and so on.
With such device specifications, the manufacturer typically designs a custom circuit that includes the particular circuits necessary to meet the specifications outlined by the customer. Often several iterations of circuit design are required to achieve the exact circuit specified by the customer. It will be seen that this process can be time consuming, and, therefore, expensive. In addition, since each circuit is a custom design, additional design expense may be added to the final circuit cost.
Furthermore, oftentimes the circuit that is specified by the customer may need to be changed in one or more relatively minor aspects after the design has been completed, but such change is relatively impractical because the entire design process must be repeated to incorporate even minor design changes in a custom integrated circuit chip.
In addition to the above considerations, modern system designers face requirements for ever-increasing degrees of integration. Recently, desires have been expressed that entire systems be integrated onto a common substrate in order to reduce cost and increase reliability.
To address these problems, presently, two general VLSI fabrication approaches are employed, application-specific integrated circuit devices (ASIC devices) and programmable devices. Programmable devices are desirable because they require little initial investment and can be incorporated into systems quickly. In the digital realm, examples of programmable devices include microprocessors, microcontrollers, field-programmable gate arrays and field-programmable logic devices.
Many modern systems require integrating analog and digital components together to form a so-called "mixed-mode" system. Mixed-mode systems are difficult to implement in programmable form because the design of suitable analog subsystems is quite challenging, as there are more crucial parameters to consider in designing an analog system than in designing a digital system. Analog components are also more sensitive to noise and crosstalk, and generally require more power and semiconductor chip area than digital components. Because of the difficulty in designing with analog circuitry, most mixed-mode systems use analog elements primarily as an interface to a digital processing system. In practice, most of the complex analog circuitry is found on the inputs of the system, for many (if not most) real-world input parameters are analog in nature. On the other hand, for many systems, the outputs are largely digital, and do not require analog output drivers.
The classical analog interface into a mixed-mode system is the analog-to-digital (A/D) converter. An A/D converter samples the value of an analog input variable and then spends a finite time interval encoding the resulting value as a binary number. The amount of time required to complete one conversion is called the conversion time, T.sub.c, the inverse of which being the conversion rate, f.sub.c, of the converter. The precision of an A/D converter is limited by the resolution of the binary number it encodes, and, in fact, most converters are specified in terms of the number of bits used in their encoding scheme, generally between 4 and 20.
Several classes of A/D converters are available, including integrating, successive-approximation, and flash converters. Integrating and successive-approximation converters typically have 12 to 16 bits of precision, but are slow, with typical conversion rates range being from 10 KHz to 500 KHz. Flash converters are much faster, but have poorer precision, typically 6 to 8 bits.
Analog-to-digital converters also exhibit undesirable quantization effects. A 10-bit converter sampling a 0-10 V waveform, for example, may have 10 mV.sub.pp error on the signal. It is relatively easy to build pure analog systems which have less than 1 mV.sub.pp of error and noise, so the quantization error of an A/D converter can be of importance. The usual way to eliminate this problem is to use a 12-bit or 16-bit converter, but such circuits grow progressively more difficult to integrate as the bit count increases.
Another drawback to A/D converters is the problem of aliasing. Nyquist theory shows that a converter with a conversion rate of f.sub.c cannot extract reliable information from a signal with appreciable spectral content beyond 0.5 f.sub.c (the Nyquist rate). Because real-world signals often violate the Nyquist sampling criterion, a low-pass, or anti-aliasing, filter is usually placed before the converter. The filter usually has a multi-pole low-pass response, and can cause significant distortion of signals with frequencies on the order of 0.25 f.sub.c. Thus, a practical A/D converter may have frequency limitations that are more severe than its conversion rate would indicate.
Furthermore, A/D converters are relatively large circuit blocks, even if they have only 10 or 12 bits of resolution. Thus, most integrated systems can include only one or two converters. Unfortunately, the number of analog inputs that must be monitored is usually much larger than the number of converters. Consequently, the analog inputs are usually multiplexed. Multiplexing leads to several undesirable effects. First, the conversion rate is greatly reduced. For instance, if N inputs are multiplexed into a single converter, the effective conversion rate for each signal will be f.sub.c /N. Second, unless all signals are sampled simultaneously and are then held in some form of analog memory, a time skew will exist between the sampling of successive inputs to the multiplexer. If time or phase relationships between the signals are of importance, this skew may introduce very large errors. In practical systems, simultaneous sample-and-hold circuitry is almost mandatory for real-time processing of multiplexed inputs. This circuitry takes up yet more area on the semiconductor chip, and is susceptible to noise and drift effects.
A final problem with A/D conversion schemes is that many operations are much more difficult to perform in the digital domain than in the analog domain. When a converter is placed at the front of the mixed-mode system, these operations must be performed digitally. For example, a simple two-pole filter can be implemented in analog circuitry as a biquad, using one operational amplifier and four passive components. In the digital domain this operation is performed by computing solutions to a second-order linear differential equation. This problem is quite difficult to solve, and usually a microprocessor architecture is needed to achieve satisfactory numerical performance.
Of course, the A/D converter can be a useful analog interface for a limited class of applications. If only a few inputs need to be monitored, if resolutions are not particularly high, and if the frequencies involved are under 50 KHz, an A/D converter may be the best solution. However, even in such cases as these, a fairly complex digital system is needed to process the results of the A/D conversions. A mixed-mode system incorporating A/D converters is thus limited in performance and is very consumptive of semiconductor chip area and power.
Mixed-mode systems that are implemented using application-specific circuitry do not usually employ A/D converters, due to the problems discussed above. Instead, application-specific systems are generally partitioned into analog and digital sections. The analog circuitry performs continuous real-time processing using operational amplifiers and passive components. In some cases specialized circuitry (such as analog multipliers) is added to improve performance or reduce component count. Once the analog processing is complete, the resulting signals are usually converted into the digital domain by comparators. In a properly partitioned system, the digital circuitry does not have to emulate any continuous real-time function, so the complexities of numerical calculations are avoided. Instead, the digital circuitry is mostly used to implement timing and control functions, and to perform combinatorial logic.
The ASIC approach to mixed-mode systems has a number of advantages over approaches using A/D converters. For small- and medium-sized systems, the ASIC approach requires fewer components, and results in smaller, more cost-effective semiconductor chips. The effective propagation delays through the analog circuitry are often much smaller than through an A/D converter. If a signal must be processed quickly, it can usually be routed directly into a comparator, and the propagation delay through the analog circuitry can often be reduced to under 100 nS. Timing skews are usually fairly easy to eliminate, since the small size of comparators and operational amplifiers allows the use of large numbers of these components on a single semiconductor chip. Few ASIC circuits need multiplexers, so they avoid the complexity of simultaneous sample-and-hold circuitry. Also, the analog circuitry of an ASIC system generally has negligible quantization error.
Although these circuits may have offset voltages on the order of 1-5 mV, these are nearly time invariant. Because offsets are nearly time-invariant, compensation circuitry can largely eliminate them. Even if it is not practical to compensate for the offset, offsets are usually less objectionable than randomly fluctuating noise.
The main difficulty with the analog circuitry used in ASIC mixed-mode circuitry is that it cannot be reconfigured. The connections between components and the component values are largely chosen by the integrated circuit designer, and once the circuit is fabricated, they cannot be changed. Consequently, an ASIC circuit is usually only suitable for a very limited range of applications.
ASIC design methodologies therefore concentrate on reducing the cycle time for designing new integrated circuits, and simplifying the specification of this design. Unfortunately, integrated circuit design is by its very nature complex and time-consuming, and no amount of development is likely to make the cycle time and initial investment competitive with those required for programming a generic device. What is needed is a programmable analog circuit topology suitable for use with a mixed-mode system. If such a topology could be found, then the general approach used in ASIC mixed-mode systems could be used to fabricate a true programmable mixed-mode integrated circuit.